Skip to content

feat(search): implement unified search module with pg full-text search#579

Merged
yusuftomilola merged 1 commit intoDistinctCodes:mainfrom
Cedarich:feat/unified-search-module
Feb 26, 2026
Merged

feat(search): implement unified search module with pg full-text search#579
yusuftomilola merged 1 commit intoDistinctCodes:mainfrom
Cedarich:feat/unified-search-module

Conversation

@Cedarich
Copy link
Contributor

Description: This PR implements a standalone SearchModule that exposes a unified search endpoint querying across multiple entity types using PostgreSQL full-text search.

Key Changes:

  • New Module: Created backend/src/search/ containing the isolated search logic.

  • Unified Endpoint: GET /search aggregates results from registered entities, supporting pagination ( page , limit ) and type filtering.

  • Full-Text Search: Utilizes PostgreSQL to_tsvector and tsquery with ts_rank for relevance scoring.

  • Plug-in Architecture: SearchService allows dynamic registration of searchable entities (currently products and users ).

  • Admin Config: Added endpoints to enable/disable specific search types at runtime ( GET /search/types , POST /search/types/:type/enable|disable ).
    Testing:

  • Verify search via GET /search?q=query .

  • Verify type filtering via GET /search?q=query&types=products .

  • Verify pagination and scoring.

close #545

@vercel
Copy link

vercel bot commented Feb 26, 2026

@Big-cedar is attempting to deploy a commit to the naijabuz's projects Team on Vercel.

A member of the Team first needs to authorize it.

@yusuftomilola yusuftomilola merged commit 88db1f6 into DistinctCodes:main Feb 26, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement unified SearchModule using PostgreSQL tsvector GIN indexes with a plug-in entity registration pattern

3 participants